Recently, in the field of information processing devices, a super-scalar system for improving the use efficiency of each execution unit by parallelizing the processes of arithmetic operations, an out-of-order instruction executing system for improving the use efficiency of the execution unit by sequentially executing a plurality of independent instructions regardless of the occurrence order in a program, etc., are generally well known as means for improving overall performance.
However, in an information processing devices using the above-mentioned systems, all the internal execution units (arithmetic unit etc.) are operating, and the parallelism is not best utilized.
Therefore, a system of best utilizing the parallelism specific to an information processing device by processing instruction sequences not related to one another among a plurality of threads after distributing internal resources that are not being completely used in a single thread to the plurality of threads has been proposed as simultaneous multi-threading (SMT).
In SMT, even if a resource is shared by instruction sequences of a plurality of threads to improve the use efficiency, the resource cannot be used by other threads while the shared resource is used by one thread. Therefore, once a thread occupies the shared resource for a long time, another thread cannot continue processing, which is a problem.